package com.cn.ccp.webservice.impl;

import org.codehaus.xfire.MessageContext;
import org.codehaus.xfire.handler.AbstractHandler;
import org.jdom.Element;

public class AuthenticationHandler extends AbstractHandler{
	public void invoke(MessageContext cfx) throws Exception {  
        if (cfx.getInMessage().getHeader() == null) {//是否有验证信息  
            throw new org.codehaus.xfire.fault.XFireFault("请求必须包含验证信息",  
                    org.codehaus.xfire.fault.XFireFault.SENDER);  
        }  
        Element token = cfx.getInMessage().getHeader().getChild(  
                "AuthenticationToken");//AuthenticationToken为自定义元素值  
        if (token == null) {  
            throw new org.codehaus.xfire.fault.XFireFault("请求必须包含身份验证信息",  
                    org.codehaus.xfire.fault.XFireFault.SENDER);  
        }  
        String username = token.getChild("Username").getValue();  
        String password = token.getChild("Password").getValue();  
        try {  
            // 进行身份验证 ，只有test@test的用户为授权用户  
            if (username.equals("test") && password.equals("test"))  
                System.out.println("身份验证通过");  
            else  
                throw new Exception();  
        } catch (Exception e) {  
            throw new org.codehaus.xfire.fault.XFireFault("非法的用户名和密码",  
                    org.codehaus.xfire.fault.XFireFault.SENDER);  
        }  
    }  
}
